<?php
/**
 * User-Model 
 *
 * PHP versions 4 and 5
 *
 * TutoriumBase (http://tutoriumbase.my-reality.de)
 * Copyright 2012, Miguel Gonzalez (http://my-reality.de)
 *
 *
 * @copyright     Copyright 2012, Miguel Gonzalez (http://my-reality.de)
 * @link          http://tutoriumbase.my-reality.de TutoriumBase
 * @since         TutoriumBase v 0.1
 */

class User extends AppModel {
    
    var $name = 'User';
    var $components = array('Session', 'Auth');
    
    // Relations
    var $hasMany = 'Tutorial';
    
    // Validation
    var $validate = array(
        'username' => array(            
            'notempty' => array(
                'rule' => array('notempty'),
                'required' => true,
                'message' => 'Bitte geben Sie einen gültigen Namen an.',
                'last' => true                
            ),
            'available' => array(
                'rule' => array('isUnique'),
                'message' => 'Benutzername wird bereits verwendet.'),                      
            'loginRule-1' => array(
                    'rule' => 'alphaNumeric',
                    'message' => 'Es sind nur Zahlen und Buchstaben erlaubt.'
                    ),            
            'loginRule-2' => array(
                'rule' => array('minLength', '4'),
                'message' => 'Benutzername muss mindestens 4 Zeichen lang sein.'
            )
            ),
        'password' => array(
            'notempty' => array(
                'rule' => array('notempty'),                              
                'required' => true,
                'message' => 'Bitte geben Sie ein Passwort ein.'                
            ),
            'password' => array(
                'rule' => array('minLength', '6'),
                'message' => 'Passwort muss mindestens 6 Zeichen lang sein.'
            ),
            'identicalFieldValues' => array(
                'rule' => array('identicalFieldValues', 're_password' ),
                'message' => 'Passwort stimmt nicht überein.'
                )            
            ),        
        're_password' => array(
            'notempty' => array(
                'rule' => array('notempty'),                              
                'required' => true,
                'message' => 'Bitte geben Sie ein Passwort ein.'
            ),
            'password' => array(
                'rule' => array('minLength', '6'),
                'message' => 'Passwort muss mindestens 6 Zeichen lang sein.'
            )
            ),
            'email' => array(
                'email' => array(
                    'rule' => array('email'),
                    'message' => 'Bitte geben Sie eine gültige Adresse ein.'
                ),
                'notempty' => array(
                    'rule' => array('notempty'),                              
                    'required' => true,
                    'message' => 'Bitte geben Sie eine Email-Adresse ein.'
                ),
                'available' => array(
                    'rule' => array('isUnique'),
                    'message' => 'Email-Adresse wird bereits verwendet.'),   
            )    
    );
    
    
    
    
    /**
     * Check, if fields have the same content
     * 
     * @author      Miguel Gonzalez
     * @since       TutoriumBase v 0.1
     */
    function identicalFieldValues($field = array(), $compare_field = null) {
        foreach($field as $key => $value) {
            $v1 = $value;
            $v2 = $this->data[$this->name][$compare_field];                 
            if($v1 !== $v2) {
                return FALSE;
            } else {
                continue;
            }
        }
        return true;
    }

    
}
?>
